CC = gcc
CFLAGS = -Wall -O2
TARGET = menu
OBJS = menu.o music.o picture.o
INSTALL_DIR = /usr/bin

# 主目标
$(TARGET): $(OBJS)
	$(CC) $(CFLAGS) -o $@ $^

# 隐式规则：自动推导 .c -> .o 的编译规则
%.o: %.c
	$(CC) $(CFLAGS) -c $< -o $@

# 特殊规则：menu.o 依赖头文件（覆盖隐式规则）
menu.o: menu.c menu.h

# 安装到系统目录
install:
	cp $(TARGET) $(INSTALL_DIR)

# 卸载已安装文件
uninstall:
	rm -f $(INSTALL_DIR)/$(TARGET)

# 清理构建文件
clean:
	rm -f $(OBJS) $(TARGET)

.PHONY: install clean uninstall